/*
 * WDT EXTEND
 */

#ifndef GKT_WDT_EXT_H
#define GKT_WDT_EXT_H

#include "gkt_wdt.h"

#ifdef __cplusplus
extern "C" {
#endif

enum {
	GKT_WDTE_ST_IDLE = 0,
	GKT_WDTE_ST_BUSY,
	GKT_WDTE_ST_MAX
};

#if defined(GKT_CONFIG_WDTE_ENABLE) && GKT_CONFIG_WDTE_ENABLE

#ifndef GKT_CONFIG_WDTE_DESC_TABLE
#error "not define GKT_CONFIG_WDTE_DESC_TABLE."
#endif

#define GKT_WDTE_ID(name)	GKT_WDTE_ID_##name

#define GKT_WDTE_DESC(name, timeout)	GKT_WDTE_ID(name)

enum {
	GKT_CONFIG_WDTE_DESC_TABLE,
	GKT_WDTE_ID_MAX
};

void gkt_wdte_mark(uint32_t id, uint32_t state);
int gkt_wdte_init(void);

#else

#define gkt_wdte_mark(id, state)	do {} while (0)
#define gkt_wdte_init()	0
#endif

#ifdef __cplusplus
}
#endif

#endif	/* GKT_WDT_EXT_H */

